import { EReportStatus, EReportType } from '@shared/enums/index'
import { IPagination } from './pagination'


// 报表设定信息
export interface IReportSetting {
  id: string, // 报表设定信息主键
  rptCd: string, // 报表代码
  rptName: string, // 报表名称
  rptType: EReportType, // 报表类型
  rptFmt: string, // 文件类型
  rptLevel: string, // 报表层级，指机构、集团、商户和门店
  rptLevelCode: string // 报表层级编号
  rptLevelName: string // 报表层级名称
  status: EReportStatus, // 报表状态
  createdAt: string, // 报表设定信息创建时间
  updatedAt: string, // 报表设定信息更新时间
}

// 报表设定信息列表分页信息
export interface IReportSettingPagination extends IPagination {
  data: IReportSetting[],
}

// 报表配置信息
export interface IReportConfig extends IReportSetting {
  id: string, // 报表配置信息主键
  createdAt: string, // 报表配置信息创建时间
  updatedAt: string, // 报表配置信息更新时间
}

// 报表配置信息列表分页信息
export interface IReportConfigPagination extends IPagination {
  data: IReportConfig[],
}

// 下载报表页面中的列表中的每一行记录
export interface IReportReleaseRecord extends IReportConfig {
  id: string, // 主键
  rptKey: string
  rptCreateTime: string, // 生成时间
}

// 报表下载列表分页信息
export interface IReportReleaseRecordPagination extends IPagination {
  data: IReportReleaseRecord[],
}

export const ReportTypeMap = {
  0: 'REPORT.TYPE.STANDARD', // 标准报表
  1: 'REPORT.TYPE.CUSTOM', // 定制报表
  2: 'REPORT.TYPE.SELFDEFINED', // 自定义报表
}

/** 报表中的层级定义 */
export enum EReportLevel {
  Institution = 0,
  Agent = 1,
  Group = 2,
  Store = 3,
}

export const ReportLevelMap = {
  0: 'GENERAL.BIZ_LEVEL.INSTITUTION',
  1: 'GENERAL.BIZ_LEVEL.AGENT',
  2: 'GENERAL.BIZ_LEVEL.MERCHANT',
  3: 'GENERAL.BIZ_LEVEL.STORE',
}
